/*
 * 水手分椰子（4分）
 */

/**
 * 思路：
 * 1. 假设现在有五个人分一堆椰子，那么每个人都会分一次椰子，我们可以得知人数就是分椰子的次数
 * 2. 假设第一个人还没分的时候椰子总共有y1个，那么第一个人分了之后，椰子总数y2=(y1-1)*(4/5)；如果已知y2求y1，那么y1=(y2*5)/4+1。
 * 3. 我们知道椰子都是一个一个的，这就说明椰子数量是整数，判断一个数是否是符合条件，我们仅需要判断每次它被分之后是不是整数就ok。
 * 4. 为减少时间复杂度，我们选择还原数量的方式迭代，设一个循环，循环变量为分了n次之后每一份的椰子数量，向上还原，判断还原n层的过程中每次椰子的数量仍然是否是整数，如果不是，继续外层循环，直到找到一个数能够进行n次内层循环为止。
*/

#include<stdio.h>

int main() {
	setbuf(stdout, NULL);

	int i, j, total, n;

	printf("Input n(1<n<=5):\n");
	scanf("%d", &n);

	if (n <= 1 || n > 5) {
		printf("Error!\n");
	} else {
		i = 1;
		while (1) {
			total = i;
			for (j = 0; j < n; j++) {
				total = total * 5;
				if (total % 4 != 0) {
					break;
				}
				total = total / 4;
				total += 1;
			}
			if (j == n) {
				break;
			}
			i++;
		}

		printf("y=%d\n", total);
	}

	return 0;
}

